<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>4. README</title>
<link rel="stylesheet" type="text/css" href="vg_basic.css">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="Valgrind Documentation">
<link rel="up" href="dist.html" title="Valgrind Distribution Documents">
<link rel="prev" href="dist.news.old.html" title="3. OLDER NEWS">
<link rel="next" href="dist.readme-missing.html" title="5. README_MISSING_SYSCALL_OR_IOCTL">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr>
<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.news.old.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td>
<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td>
<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td>
<th align="center" valign="middle">Valgrind Distribution Documents</th>
<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.readme-missing.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td>
</tr></table></div>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="dist.readme"></a>4. README</h1></div></div></div>
<div class="literallayout"><p><br>
      Release notes for Valgrind<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
If you are building a binary package of Valgrind for distribution,<br>
please read README_PACKAGERS.  It contains some important information.<br>
<br>
If you are developing Valgrind, please read README_DEVELOPERS.  It contains<br>
some useful information.<br>
<br>
For instructions on how to build/install, see the end of this file.<br>
<br>
If you have problems, consult the FAQ to see if there are workarounds.<br>
<br>
<br>
Executive Summary<br>
~~~~~~~~~~~~~~~~~<br>
Valgrind is a framework for building dynamic analysis tools. There are<br>
Valgrind tools that can automatically detect many memory management<br>
and threading bugs, and profile your programs in detail. You can also<br>
use Valgrind to build new tools.<br>
<br>
The Valgrind distribution currently includes seven production-quality<br>
tools: a memory error detector, two thread error detectors, a cache<br>
and branch-prediction profiler, a call-graph generating cache and<br>
branch-prediction profiler, and two heap profilers. It also includes<br>
one experimental tool: a SimPoint basic block vector generator.<br>
<br>
Valgrind is closely tied to details of the CPU, operating system and to<br>
a lesser extent, compiler and basic C libraries. This makes it difficult<br>
to make it portable.  Nonetheless, it is available for the following<br>
platforms: <br>
<br>
- X86/Linux<br>
- AMD64/Linux<br>
- PPC32/Linux<br>
- PPC64/Linux<br>
- ARM/Linux<br>
- ARM64/Linux<br>
- X86/macOS<br>
- AMD64/macOS<br>
- S390X/Linux<br>
- MIPS32/Linux<br>
- MIPS64/Linux<br>
- nanoMIPS/Linux<br>
- X86/Solaris<br>
- AMD64/Solaris<br>
- X86/FreeBSD<br>
- AMD64/FreeBSD<br>
- ARM64/FreeBSD<br>
<br>
Note that AMD64 is just another name for x86_64, and Valgrind runs fine<br>
on Intel processors.  Also note that the core of macOS is called<br>
"Darwin" and this name is used sometimes.<br>
<br>
Valgrind is licensed under the GNU General Public License, version 2. <br>
Read the file COPYING in the source distribution for details.<br>
<br>
However: if you contribute code, you need to make it available as GPL<br>
version 2 or later, and not 2-only.<br>
<br>
<br>
Documentation<br>
~~~~~~~~~~~~~<br>
A comprehensive user guide is supplied.  Point your browser at<br>
$PREFIX/share/doc/valgrind/manual.html, where $PREFIX is whatever you<br>
specified with --prefix= when building.<br>
<br>
<br>
Building and installing it<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
To install from the GIT repository:<br>
<br>
  0. Clone the code from GIT:<br>
     git clone https://sourceware.org/git/valgrind.git<br>
     There are further instructions at<br>
     http://www.valgrind.org/downloads/repository.html.<br>
<br>
  1. cd into the source directory.<br>
<br>
  2. Run ./autogen.sh to setup the environment (you need the standard<br>
     autoconf tools to do so).<br>
<br>
  3. Continue with the following instructions...<br>
<br>
To install from a tar.bz2 distribution:<br>
<br>
  4. Run ./configure, with some options if you wish.  The only interesting<br>
     one is the usual --prefix=/where/you/want/it/installed.<br>
<br>
  5. Run "make".<br>
<br>
  6. Run "make install", possibly as root if the destination permissions<br>
     require that.<br>
<br>
  7. See if it works.  Try "valgrind ls -l".  Either this works, or it<br>
     bombs out with some complaint.  In that case, please let us know<br>
     (see http://valgrind.org/support/bug_reports.html).<br>
<br>
Important!  Do not move the valgrind installation into a place<br>
different from that specified by --prefix at build time.  This will<br>
cause things to break in subtle ways, mostly when Valgrind handles<br>
fork/exec calls.<br>
<br>
<br>
The Valgrind Developers<br>
<br>
    </p></div>
</div>
<div>
<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
<tr>
<td rowspan="2" width="40%" align="left">
<a accesskey="p" href="dist.news.old.html">&lt;&lt; 3. OLDER NEWS</a> </td>
<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
<td rowspan="2" width="40%" align="right"> <a accesskey="n" href="dist.readme-missing.html">5. README_MISSING_SYSCALL_OR_IOCTL &gt;&gt;</a>
</td>
</tr>
<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
</table>
</div>
</body>
</html>
